package com.boil.qz.safekavass.web.request.param;

import com.boil.util.Constants;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.Pattern;

/**
 * Created by ChenYong on 2017-04-24.
 * <br>
 * 举报红包列表的请求参数。
 */
public class ListReportRedpackParam extends Page2Param {
    /**
     * 举报人
     */
    @Length(min = Constants.VALUE_0, max = Constants.VALUE_50, message = "举报人的长度在0至50个字之间")
    private String reportCreatePerson;
    /**
     * 举报人手机号
     */
    @Pattern(regexp = Constants.PHONE_EMPTY_RE, message = ("举报人" + Constants.PHONE_RE_MSG))
    private String reportCreatePersonPhone;
    /**
     * 举报标题
     */
    @Length(min = Constants.VALUE_0, max = Constants.VALUE_500, message = "举报标题的长度在0至500个字之间")
    private String reportName;
    /**
     * 发红包人
     */
    @Length(min = Constants.VALUE_0, max = Constants.VALUE_50, message = "处理人的长度在0至50个字之间")
    private String reportHandlePerson;
    /**
     * 商户订单号
     */
    @Pattern(regexp = Constants.NUMBER_28_EMPTY_RE, message = ("商户订单号" + Constants.NUMBER_28_EMPTY_RE_MSG))
    private String mchBillno;
    /**
     * 红包状态
     */
    @Pattern(regexp = "^(\\s*)|((SENDING)|(SENT)|(FAILED)|(RECEIVED)|(RFUND_ING)|(REFUND))$", message = "红包状态由SENDING、SENT、FAILED、RECEIVED、RFUND_ING或REFUND组成")
    private String status;
    /**
     * 红包发送时间的开始日期的字符串
     */
    @Pattern(regexp = Constants.DATE_1_EMPTY_RE, message = ("红包发送时间的开始" + Constants.DATE_RE_MSG))
    private String sendTimeStartDate;
    /**
     * 红包发送时间的结束日期的字符串
     */
    @Pattern(regexp = Constants.DATE_1_EMPTY_RE, message = ("红包发送时间的结束" + Constants.DATE_RE_MSG))
    private String sendTimeEndDate;
    /**
     * 红包退款时间的开始日期的字符串
     */
    @Pattern(regexp = Constants.DATE_1_EMPTY_RE, message = ("红包退款时间的开始" + Constants.DATE_RE_MSG))
    private String refundTimeStartDate;
    /**
     * 红包退款时间的结束日期的字符串
     */
    @Pattern(regexp = Constants.DATE_1_EMPTY_RE, message = ("红包退款时间的结束" + Constants.DATE_RE_MSG))
    private String refundTimeEndDate;

    /**
     * 默认构造器。
     */
    public ListReportRedpackParam() {
        super();
    }

    public String getReportCreatePerson() {
        return reportCreatePerson;
    }

    public void setReportCreatePerson(String reportCreatePerson) {
        this.reportCreatePerson = reportCreatePerson;
    }

    public String getReportCreatePersonPhone() {
        return reportCreatePersonPhone;
    }

    public void setReportCreatePersonPhone(String reportCreatePersonPhone) {
        this.reportCreatePersonPhone = reportCreatePersonPhone;
    }

    public String getReportName() {
        return reportName;
    }

    public void setReportName(String reportName) {
        this.reportName = reportName;
    }

    public String getReportHandlePerson() {
        return reportHandlePerson;
    }

    public void setReportHandlePerson(String reportHandlePerson) {
        this.reportHandlePerson = reportHandlePerson;
    }

    public String getMchBillno() {
        return mchBillno;
    }

    public void setMchBillno(String mchBillno) {
        this.mchBillno = mchBillno;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getSendTimeStartDate() {
        return sendTimeStartDate;
    }

    public void setSendTimeStartDate(String sendTimeStartDate) {
        this.sendTimeStartDate = sendTimeStartDate;
    }

    public String getSendTimeEndDate() {
        return sendTimeEndDate;
    }

    public void setSendTimeEndDate(String sendTimeEndDate) {
        this.sendTimeEndDate = sendTimeEndDate;
    }

    public String getRefundTimeStartDate() {
        return refundTimeStartDate;
    }

    public void setRefundTimeStartDate(String refundTimeStartDate) {
        this.refundTimeStartDate = refundTimeStartDate;
    }

    public String getRefundTimeEndDate() {
        return refundTimeEndDate;
    }

    public void setRefundTimeEndDate(String refundTimeEndDate) {
        this.refundTimeEndDate = refundTimeEndDate;
    }

    @Override
    public String toString() {
        final StringBuffer sb = new StringBuffer("ListReportRedpackParam{");
        sb.append("reportCreatePerson='").append(reportCreatePerson).append('\'');
        sb.append(", reportCreatePersonPhone='").append(reportCreatePersonPhone).append('\'');
        sb.append(", reportName='").append(reportName).append('\'');
        sb.append(", reportHandlePerson='").append(reportHandlePerson).append('\'');
        sb.append(", mchBillno='").append(mchBillno).append('\'');
        sb.append(", status='").append(status).append('\'');
        sb.append(", sendTimeStartDate='").append(sendTimeStartDate).append('\'');
        sb.append(", sendTimeEndDate='").append(sendTimeEndDate).append('\'');
        sb.append(", refundTimeStartDate='").append(refundTimeStartDate).append('\'');
        sb.append(", refundTimeEndDate='").append(refundTimeEndDate).append('\'');
        sb.append(", sEcho=").append(sEcho);
        sb.append(", iColumns=").append(iColumns);
        sb.append(", iSortingCols=").append(iSortingCols);
        sb.append(", iDisplayStart=").append(iDisplayStart);
        sb.append(", iDisplayLength=").append(iDisplayLength);
        sb.append(", startDate='").append(startDate).append('\'');
        sb.append(", endDate='").append(endDate).append('\'');
        sb.append('}');
        return sb.toString();
    }
}